package com.hsl.housaileibot001.model.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 模拟试题VO类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "模拟试题")
public class MockExamVO {

    /**
     * 面试题ID
     */
    @Schema(description = "面试题ID")
    private Long interviewQuestionId;

    /**
     * 模拟题列表
     */
    @Schema(description = "模拟题列表")
    private List<MockQuestion> mockQuestions;

    /**
     * 模拟题目静态内部类
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Schema(description = "模拟题目")
    public static class MockQuestion {

        /**
         * 面试题概述
         */
        @Schema(description = "面试题概述")
        private String overview;

        /**
         * 题目列表
         */
        @Schema(description = "题目列表")
        private List<QuestionItem> questionItems;

        /**
         * 题目项静态内部类
         */
        @Data
        @NoArgsConstructor
        @AllArgsConstructor
        @Schema(description = "题目项")
        public static class QuestionItem {

            /**
             * 题目内容
             */
            @Schema(description = "题目内容")
            private String question;

            /**
             * 选项列表
             */
            @Schema(description = "选项列表")
            private List<Option> options;

            /**
             * 正确答案
             */
            @Schema(description = "正确答案")
            private String answer;

            /**
             * 题目解析
             */
            @Schema(description = "题目解析")
            private String explanation;

            /**
             * 选项静态内部类
             */
            @Data
            @NoArgsConstructor
            @AllArgsConstructor
            @Schema(description = "选项")
            public static class Option {

                /**
                 * 选项标识（A、B、C、D等）
                 */
                @Schema(description = "选项标识")
                private String optionKey;

                /**
                 * 选项内容
                 */
                @Schema(description = "选项内容")
                private String optionValue;

                /**
                 * 是否为正确答案
                 */
                @Schema(description = "是否为正确答案")
                private Boolean isCorrect;
            }
        }
    }
}
